package com.java.module.user.mapper;

import java.util.List;
import java.util.Map;

import com.java.common.lang.domain.entity.User;
import com.java.common.lang.domain.model.ApiLoginUser;
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.data.repository.query.Param;

/**
 * 用户模块：用户信息Mapper接口
 * 
 * @author Administrator
 * @date 2021-02-23
 */
public interface UserMapper {

    /**
     * 查询用户模块：用户信息
     * 
     * @param uid 用户模块：用户信息ID
     * @return 用户模块：用户信息
     */
    public User selectUserById(Long uid);

    /**
     * 查询用户模块：用户信息列表
     * 
     * @param user 用户模块：用户信息
     * @return 用户模块：用户信息集合
     */
    public List<User> selectUserList(User user);

    /**
     * 新增用户模块：用户信息
     * 
     * @param user 用户模块：用户信息
     * @return 结果
     */
    public int insertUser(User user);

    /**
     * 修改用户模块：用户信息
     * 
     * @param user 用户模块：用户信息
     * @return 结果
     */
    public int updateUser(User user);

    /**
     * 删除用户模块：用户信息
     * 
     * @param uid 用户模块：用户信息ID
     * @return 结果
     */
    public int deleteUserById(Long uid);

    /**
     * 批量删除用户模块：用户信息
     * 
     * @param uids 需要删除的数据ID
     * @return 结果
     */
    public int deleteUserByIds(Long[] uids);

    /**
     * 通过用户名查询用户
     * 
     * @param username
     * @return
     */
    public User selectUserByUsername(String username);

    /**
     * 查询用户信息
     * 
     * @author yilabao
     * @date 2021年5月10日
     * @param uid
     * @return User
     */
    public User getUserInfo(Long uid);

    User selectUserByIdNumber(String idNumber);

    String getGroupNickname(Long[] uids);

    List<User> selectUserListRandom(User user);

    Integer getFansCount(Long uid);

    Integer getFollowCount(Long uid);

    Integer isInUser(Map<String,Object> map);

    int selectCount(User user2);

    User selectUserByCode(String code);
}